home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1983-08-18 | 2.1 KB | 51 lines
1 REM CHI-SQUARE TEST 2 REM Written by Tracy L. Gustafson, M.D. 3 REM Round Rock, Texas. Version 2.0, 1982 5 DEF SEG=&H40 6 A=PEEK(&H17): IF NOT(A AND &H20) THEN POKE &H17,(A AND (NOT &H20)) OR &H20 7 DEF SEG: KEY OFF 10 CLEAR: DEFINT A,T: SCREEN 0,0: WIDTH 80: COLOR 7,0,4: DIM C(1,1),TR(1),TC(1) 15 CLS: PRINT TAB(28);"KEYTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENCLOSE" 16 PRINT TAB(28);"OPEN CHI-SQUARE TEST OPEN" 17 PRINT TAB(28);"SCREENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENLOAD" 25 PRINT: PRINT: PRINT TAB(5);"Do you want to: ": PRINT 30 PRINT TAB(20);"1.) Evaluate a table of data.": PRINT 35 PRINT TAB(20);"2.) Evaluate a known chi-square value.": PRINT: PRINT 36 PRINT TAB(25);: INPUT "Enter your choice: ",ASUB 37 IF ABS(ASUB-1.5)>0.51 THEN BEEP: GOTO 36 40 CLS: PRINT: PRINT TAB(29);"CHI-SQUARE TEST": PRINT TAB(29);"THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN" 42 ON ASUB GOTO 60,45 45 PRINT: PRINT: PRINT: PRINT TAB(24); 50 INPUT "Enter chi-square value: ",X: PRINT: PRINT TAB(22); 55 INPUT "Enter degrees of freedom: ",DF: PRINT: CQ=0: GOTO 140 60 PRINT: PRINT TAB(10);: INPUT;"How many ROWS? ",AR: PRINT TAB(45); 70 INPUT "How many COLUMNS? ",AC 72 ERASE C,TR,TC: DIM C(AR,AC),TR(AR),TC(AC) 75 PRINT: PRINT "Enter your table values:" 80 IF AC<5 THEN AT=18 ELSE IF AC<9 THEN AT=9 ELSE AT=5 85 PRINT: TN=0: CQ=0: X=0 90 FOR AX=1 TO AR: FOR AY=1 TO AC 95 PRINT TAB(AY*AT);:INPUT;"",C(AX,AY): TR(AX)=TR(AX)+C(AX,AY) 100 NEXT: TN=TN+TR(AX): PRINT: PRINT: NEXT 105 FOR AY=1 TO AC: FOR AX=1 TO AR: TC(AY)=TC(AY)+C(AX,AY): NEXT: NEXT 110 F=0: IF AR=2 AND AC=2 THEN F=0.5 115 FOR AX=1 TO AR: FOR AY=1 TO AC: E=TR(AX)*TC(AY)/TN: IF E<5 THEN CQ=1 120 Z=ABS(C(AX,AY)-E)-F: Z=Z*Z/E: X=X+Z 125 NEXT: NEXT 130 PRINT: PRINT TAB(20);"CHI-SQUARE = ";X 135 DF=(AC-1)*(AR-1) 140 IF X<31 OR DF>2 THEN J=DF/2-1: R=1 ELSE P=0: GOTO 170 145 FOR B=1 TO (DF/2-0.5): R=R*J: J=J-1: NEXT 150 IF DF MOD 2<>0 THEN R=R*1.77245 155 S=1: I=1: K=((X/2)^(DF/2))*2/(EXP(X/2)*R*DF): D=DF+2 160 I=I*X/D: S=S+I: D=D+2: IF I>0 THEN 160 165 P=1-K*S 170 PLAY "O2 MB MS T120 L16 D-P8A-P8 L3 D-": PRINT: PRINT TAB(15);: COLOR 0,7 175 PRINT TAB(28);"p = ";:IF P<9.8E-08 THEN PRINT "< 10 (-8)"; ELSE PRINT P; 178 PRINT TAB(60): COLOR 7,0 180 IF CQ=1 THEN PRINT:PRINT:PRINT "The Chi-square test may not be applicable in this case---":PRINT TAB(24);"because the expected count in one or more cells is < 5." 185 PRINT: PRINT: PRINT TAB(10); 190 INPUT "Do you want to calculate another Chi-square? (Y or N) ",A$ 195 IF A$="y" OR A$="Y" THEN 10 200 END